Методы для монтажа
 
Trim
Trim(clip,first-frame,last-frame)

Trim вырезает часть видео-клипа включающую только кадры с first-frame до last-frame. Звук также вырезается и остаётся синхронизированным. Передача 0 для last-frame означает "конец клипа". К примеру:

Trim(100,0) # удалить первые 100 кадров

AlignedSplice / UnalignedSplice
AlignedSplice(clip1,clip2[,...])
UnalignedSplice(clip1,clip2[,...])

AlignedSplice и UnalignedSplice соединяют два или более видео-клипов непрерывно. Различие между фильтрами лежит в том, как они обращаются со звуковыми дорожками. UnalignedSplice просто соединяет их без внимания к синхронизации с видео. AlignedSplice обрезает первую звуковую дорожку или вставляет тишину, смотря что требуется для гарантии сохранения синхронизации с видео второй звуковой дорожки.

 

Вы должны использовать UnalignedSplice когда объединяемые фонограммы были исходно непрерывны - к примеру, когда вы объединяете файлы захваченные в AVI_IO. Небольшие ошибки отсчётов времени могут вести к щелчкам в звуке если вы примните AlignedSplice в такой ситуации.

 

Скриптовый язык AVISynth предоставляет + и ++ как синонимы для UnalignedSplice и AlignedSplice соответственно

 
Пример 1:
# Объединить сегментированный файл захвата для формирования цельного клипа
UnalignedSplice(AVISource("capture1.avi"), AVISource("capture2.avi"), AVISource("capture3.avi"))
# или: AVISource("capture1.avi") + AVISource("capture2.avi") + AVISource("capture3.avi")
 
Пример 2:
# Извлечь три сцены из клипа и объединить их вместе в новом порядке
AVISource("video.avi")
edited_video = Trim(2000,2500) ++ Trim(3000,3500) ++ Trim(1000,1500)

Dissolve
Dissolve(clip1,clip2[,...],overlap)

Dissolve похож на AlignedSplice исключая то, что клипы объединяются с перекрытием. Последние overlap кадров первого видео-потока смешиваются последовательно с первыми overlap кадрами второго видео-потока так, что потоки постепенно перетекают один в другой. Аудио-потоки смешиваются также.

 

Термин "dissolve (растворение)" временами используется для различных эффектов в которых переход скорее поточечный, чем градиентный. Фильтр этого не делает.


Reverse
Reverse(clip)

Фильтр делает клип играющий в обратном направлении. Это применимо для наблюдения идущих задом наперед людей, во время прослушивания скрытых сатанинских посланий.


FadeOut / FadeOut2
FadeOut(clip,number-of-frames)
FadeOut2(clip,number-of-frames)

FadeOut и FadeOut2 делают видео-поток линейно затухающим в чёрный. Звуковая дорожка (если есть) также линейно заглушается в тишину. Эффект затухания действует только последние number-of-frames кадров видео. Последний кадр видео становиться практически-но-ещё-не-совсем чёрным. Дополнительно совершенно чёрный кадр добавляется в конец, увеличивая таким образом общее число кадров на один.

 

FadeOut2 работает также, не считая добавления двух чёрных кадров вместо одного. Единственная цель этого - обойти ошибку в Window Media Player. Все проверенные версии WMP не воспроизводят последний кадр MPEG файла - вместо этого они останавливаются на предпоследнем кадре когда воспроизведение завершается. Это оставляет показанным на экране неприглядный практически-но-ещё-не-совсем чёрный кадр по завершении фильма, если вы используете FadeOut. FadeOut2 избегает эту проблему.

 

FadeOut(n,clip) просто псевдоним для Dissolve(clip,Blackness(n+1,clip),n) (или n+2 вместо n+1 для FadeOut). Нет подобного фильтра FadeIn, но можно получить тот-же эффект обращением аргументов Dissolve: Dissolve(Blackness(n+1,clip),clip,n).


SelectEven / SelectOdd
SelectEven(clip)
SelectOdd(clip)

SelectEven делает выходной видео-поток используя только кадры входного видео-потока с чётными номерами. SelectOdd - его нечётное дополнение.

 

Так как кадры нумеруются с нуля, SelectEven фактически выбирает первый, третий, пятый, ... кадры по человеческому соглашению счёта.


Pulldown
Pulldown(clip,a,b)

Фильтр Pulldown просто выбирает два из каждых пяти кадров видеоисточника. Частота кадров уменьшается к двум третьим своего исходного значения. К примеру, Pulldown 0, 2 выберет кадры 0,2,5,7,10,12 и т.д.

 

Разработан для использования после DoubleWeave, и его цель - восстановление исходной частоты кадров фильма который был конвертирован в видео с применением процесса "3:2 pulldown".

 

Причина, по которой необходимо в начале использовать DoubleWeave в том, что карты захвата соединяют поля неверным образом. В терминах полей, последовательность 3:2 pulldown просто "A A B B B C C D D D ...", где символы с "A" по "D" представляют исходные кадры фильма. Но карты захвата соединяют поля в кадры без соблюдения структуры "3:2 pulldown", и в результате получается вот что:

A   B   C   D   D    (30fps)
A   B   B   C   D

В такой структуре кадр "C" никогда сам не возникает. После DoubleWeave каждая пара полей приобретает её собственный кадр, так что видео поток начинается так:

A A B B C C D D D    (60fps)
A B B B B C C D D
*     *   *     *
 

Теперь каждый кадр фильма имеет как минимум один свой кадр видео. В этом месте фильтр Pulldown с аргументами 0, 3 выберет кадры отмеченные "*" и вы получите

A     B   C     D    (24fps)
A     B   C     D
 

... то, что вам действительно нужно.

 

Очень сложно объяснить, но восстановление после "3:2 pulldown" это просто вопрос вставки шаблонного кода. Посмотрите приме для ShowFiveVersions.

 

Pulldown(a,b) внутренне реализован как SelectEvery(5,a,b).AssumeFrameBased.


Interleave
Interleave(clip,clip[,...])

Interleave чередует кадры из нескольких клипов по принципу кадр-за-кадром, так, к примеру, если вы дадите три аргумента, первые три кадры видеовыхода будут первыми кадрами трёх клипов источников, следующие три - вторыми кадрами видеоисточников и т.д..


SelectEvery
SelectEvery(clip,step-size[,offset1[,offset2[,...]]])

SelectEvery это обобщение таких фильтров, как SelectEven и Pulldown. Проще всего описать фильтр на примере:

SelectEvery(clip,2,0) # идентично SelectEven(clip)
SelectEvery(clip,2,1) # идентично SelectOdd(clip)
SelectEvery(clip,10,3,6,7) # выбрать кадры 3,6,7,13,16,17,23,26,27... из клипа источника
SelectEvery(clip,9) # выбрать кадры 0,9,18,27,... (второй аргумент предполагается равным 0)
 

Или вот так

# Взять прогрессивный клип 24FPS и применить "3:2 pulldown"
# получая на выходе чересстрочный клип 30FPS
AssumeFrameBased
SeparateFields
SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7)
Weave

черезстрочное видео
[черезстрочное видео]
команды компактно
[команды компактно]
команды развёрнуто
[команды развёрнуто]
изменение FPS
[изменение FPS]